package com.zxy.zxyrpc.retry;

import com.zxy.zxyrpc.spi.SpiLoader;

/**
 * 重试器工厂
 *
 * @author zxy
 * @since 2025/5/28
 **/
public class RetryStrategyFactory {
    // 默认重试器
    private static final RetryStrategy DEFAULT_RETRY_STRATEGY = new NoRetryStrategy();
    private RetryStrategyFactory(){}

    /* 在 SPI 中的 getInstance 方法动态加载可能会更好
    static {
        SpiLoader.load(RetryStrategy.class);
    }*/

    /**
     * 获取重试器实例
     *
     * @param key 键名常量
     * @return 重试器实例
     */
    public static RetryStrategy getInstance(String key) {
        return SpiLoader.getInstance(RetryStrategy.class, key);
    }
}
